﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using SportsPlatform.Application.Dto.Home;
using SportsPlatform.Application.Query.Home;
using SportsPlatform.Base;

namespace SportsPlatform.Application.SportBusiness.ISportBusiness
{
    /// <summary>
    /// 首页服务接口
    /// </summary>
    public interface IHomService
    {
        /// <summary>
        /// 获取累计赛事总条数和同比昨日百分比
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<AccumulativeCompetitionDto>> GetAccumulativeCompetitionCount();

        /// <summary>
        /// 获取今日新增赛事条数和同比昨日百分比
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<AccumulativeCompetitionDto>> GetAccumulativeCompetitionToDayCount();

        /// <summary>
        /// 获取累计注册用户数量
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<RegisterUsersDto>> GetAccumulativeRegistrUsers();

        /// <summary>
        /// 获取今日累计注册用户
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<RegisterUsersDto>> GetAccumulativeRegistrUsersToDay();

        /// <summary>
        /// 获取新增用户趋势
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<Dictionary<string, int>>> GetAddUserTendency(GetAddUserQuery query);

        /// <summary>
        /// 获取待审核的客户信息总数
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<int>> GetPendingInfoCount();

        /// <summary>
        /// 获取今日比赛场次
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<ToDayCompetitionDto>> GetToDayCompetition();

        /// <summary>
        /// 获取今日比赛用户
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<ToDayGameoUserDto>> GetToDayGameoUser();

        /// <summary>
        /// 获取今日报名用户
        /// </summary>
        /// <returns></returns>
        Task<ResultDto<ToDayRegiisterInfoDto>> GetToDayRegiisterInfo();

        /// <summary>
        /// 获取预警信息列表
        /// </summary>
        /// <returns></returns>

        Task<PagePagingDto<WarningListDto>> GetWarningList(BasePageQuery query);
    }
}

